// src.controllers.uploadfile.controller

var muilter = require('../helper/MulterUtil');
var jsonUtil = require('../helper/JsonUtil');
var httpUtil = require('../helper/HttpUtil');
var formidable = require('formidable');

var log = require('log4js').getLogger("uploadfile.controller");
//multer有single()中的名称必须是表单上传字段的name名称。
var upload=muilter.single('file');
exports.dataInput = function (req, res) {
    upload(req, res, function (err) {
        //添加错误处理
        if (err) {
            console.log(err);
        }
        if(typeof req.file != 'undefined'){
            //文件信息在req.file或者req.files中显示。
            req.file.path = req.file.path.replace('public','');
            log.log('上传文件:'+req.file.path);
            res.json({
                status: 0,
                type:'images',
                message: '请求成功',
                path : req.file.path
            });
        } else {
            log.log('上传失败:'+req.file.path);
            res.json({
                status: 0,
                type:'images',
                message: '上传失败',
            });
        }
    });
};


// var config = require('../../config/index');
// var http = require('http');
// var fs = require('fs');
//
// var BufferHelper = require('../helper/BufferHelper');
// var request = require('request');
// exports.uploadimg = function(req, res){
//     console.log('上传图片>>>>>>>');
//     // var form = new formidable.IncomingForm();
//     var bufferHelper = new BufferHelper();
//
//     req.on("data", function (chunk) {
//         bufferHelper.concat(chunk);
//     });
//
//     req.on('end', function () {
//         var formData = bufferHelper.toBuffer().toString();
//         var params = 'web';
//         var url = config.comm.file.uploadImg + '?params='+params ;
//         var options = {
//             url:url,
//             formData: formData,
//             headers: {
//                 'Content-Type': 'multipart/form-data',
//                 'Content-Length': formData.length
//             }
//         };
//         request.post(options, function (error, response, body) {
//             if (!error && response.statusCode == 200) {
//                 var resultData = JSON.parse(body);
//                 res.json({
//                     status: 0,
//                     type:'images',
//                     message: '请求成功',
//                     path : 'http:\/\/localhost:3000\/images\/upload\/s.jpg'
//                 });
//                 console.log('上传完成>>>>>>>');
//                 log.info('上传完成>>>>>>>'+resultData);
//             }else{
//                 log.info('上传图片失败:'+err);
//                 res.json({
//                     status :  1,
//                     type : 'images',
//                     message : '上传失败',
//                     result : error
//                 });
//             }
//         });
//     });
// };

// function upload(){
    // var form = new formidable.IncomingForm();
    // form.parse(req, function(error, fields, files) {
    //     console.log("parsing done");
    //     console.log(files.upload.path);
    //     fs.renameSync(files.upload.path, "./upload/test.png"); //winodw认的路径，nodejs的安装路径
    //     response.writeHead(200, {"Content-Type": "text/html"});
    //     response.write("received image:<br/>");
    //     response.write("<img src='/show' />");
    //     response.end();
    // });
    // var reqData = [];
    // var size = 0;
    // req.on('data', function (data) {
    //     console.log('>>>req on');
    //     reqData.push(data);
    //     size += data.length;
    // });
    // req.on('end', function () {
    //     req.reqData = Buffer.concat(reqData, size);
    // });
    // var params='';
    // var url = config.comm.file.uploadImg + '?params='+(params||'') ;
    // formidable.IncomingForm();
    // httpUtil.uploadPost(url,req,function(err, data){
    //     if(err) log.log('上传图片失败:'+err);
    //     jsonUtil.jsonWrite(res, req.result);
    // });

    // var boundaryKey = '----' + new Date().getTime();
    // var options = {
    //     host:'images.test.ruixuesoft.com',//远端服务器域名
    //     port:80,//远端服务器端口号
    //     method:'POST',
    //     path:'/upload/fileupload',//上传服务路径
    //     headers:{
    //         'Content-Type':'multipart/form-data; boundary=' + boundaryKey,
    //         'Connection':'keep-alive'
    //     }
    // };
    // // var url = config.comm.file.uploadImg + '?params='+(params||'') ;
    // var req = http.request(options,function(res){
    //     res.setEncoding('utf8');
    //     res.on('data', function (chunk) {
    //         console.log('body: ' + chunk);
    //     });
    //     res.on('end',function(){
    //         console.log('res end.');
    //     });
    //     res.on('error', onError);
    // });
    //
    // req.write(
    //     '--' + boundaryKey + 'rn' +
    //     'Content-Disposition: form-data; name="upload"; filename="test.zip"rn' +
    //     'Content-Type: application/x-zip-compressedrnrn'
    // );
    // //设置1M的缓冲区
    // var fileStream = fs.createReadStream('/data/1.jpg',{bufferSize:1024 * 1024});
    // fileStream.pipe(req,{end:false});
    // fileStream.on('end',function(){
    //     req.end('rn--' + boundaryKey + '--');
    // });
// }
// function onError(error) {
//     log.debug(error);
//     if (error.syscall !== 'listen') {
//         throw error;
//     }
//
//     var bind = typeof port === 'string'
//         ? 'Pipe ' + port
//         : 'Port ' + port;
//
//     // handle specific listen errors with friendly messages
//     switch (error.code) {
//         case 'EACCES':
//             console.error(bind + ' requires elevated privileges');
//             process.exit(1);
//             break;
//         case 'EADDRINUSE':
//             console.error(bind + ' is already in use');
//             process.exit(1);
//             break;
//         default:
//             throw error;
//     }
// }
